import Vue from 'vue'
// import App from './App.vue'
import ElementUI from 'element-ui';
// import myui from 'zfpx_ui2'
import 'element-ui/lib/theme-chalk/index.css';
import router from './router'
import store from './store'
// import App2 from './mycomponents/App.vue'
// import App2 from '@/mycomponents/App.vue'
import App2 from './AppRouter.vue'
// import $ from 'jquery'

Vue.use(ElementUI)
// Vue.use(myui)

// Vue.use(对象或者一个函数) 若是一个对象 他默认去找 里边的install这个方法，若是函数则直接当作函数执行
// console.log(Vue.use)
Vue.use(function(_vue){
  console.log(_vue === Vue)
})
Vue.use({
  install(_vue){
    console.log(_vue)
  }
})

// Vue.config.productionTip = true
Vue.component('qqq',{
  // template:'<h1>哈哈哈</h1>'
  // h(标签名,行内属性，数组或者字符串) 多个子节点的时候 用数组 ；
  // <div > 哈哈哈  <span>咯咯咯</span>  <i>hehehe</i></div>
  render:h=>h('div',{
    class:'qqq',
    style:{color:'red'}
  },["哈哈哈",h('span','咯咯咯'),h('i','hehehe')])
})
// 父子组件  A组件使用了 B组件；  那么 我们就把 A称为父组件    B称为子组件
//   父子组件 跟 全局组件和局部组件没有任何关系
// Vue.mixin({配置项}) 全局混入
// console.log(2222,Vue.mixin)
// Vue.mixin({
//   // 全局混入  就理解成 把这个对象复制到了每一个组件里边
//   // 若属性名冲突了 则 以组件组件为准
//   // 钩子函数 是 混入的钩子先执行
//   data() {
//     // 相当于把当前的这个对象混入到了 每一个组件的data中
//     return {
//       mix:666
//     }
//   },
//   methods: {
//     // 相当于把当前的这个对象混入到了 methods中
//     mixfn(){
//       console.log(this)
//     }
//   },
//   beforeCreate() {
//     // 相当去 把这个钩子函数 混入到了每一个组件当中
//     // this 就是混入到的哪个实例
//     console.log('mixbeforecreate',this)
//   },
// })
new Vue({
  router,
  store,//一旦 注入完成 那么 每一个组件中 都可以用过this.$store.xxx 去获取或者操作vuex中的数据
  render: h => h(App2)
}).$mount('#app')
